Polynot: Polyphasic sleep notation

Polynot is a notation for polyphasic sleep patterns, to be expressed in social media bios and statuses.

General premise

Polynot is meant to be extremely short, and be easy to remember. The most important parts should be intuitive.

There are three basic versions of the notation:
  1. Bio + Status + Real-time info => Meant for people who regularly update their status, otherwise like 2.
  2. Bio + Status => Status contains short-term info and overview, bio contains sleep schedule.
  3. Bio only => Bio contains sleep schedule, and possibly short-term info when needed.


The bio should contain the following information: The format for this should be like in this Everyman 2 (aka. two naps, each nap replacing about 1h30 of mono sleep) example:
  E2: N1 (0630-0700), N2 (1700-1730), C1 (2230-0430)
Sleeps should be sorted by starting time (except T-naps, which are always at the end, but internally still sorted), and numbered within their type. The type is one of N, C, and T. N means nap, which is any regular sleep less than 1h30 in length. C means core, and is any regular sleep more than 1h30 in length.

T is a bit special, and it means temporary. T sleeps can be of any length, but are not part of the regular schedule, for example when adding an emergency nap or using a re-entering schedule (for going back to the schedule after an over- or under-sleep).

When using the bio-only fomat, writing `E2::[state]` instead of `E2:` signifies that T-naps are included, and the info is kept up-to-date with them.
When no T-naps are used but the bio is updated when they are, [state] should simply be left out, resulting in `E2::`.

The state and T-naps are described further in the status and T-nap format sections.


The format for the status is as follows:
  E2::reenter(C1eN1 failed) [awake - next: N2.] [T-naps: T1 (~1900:20m)] - [<other text>]
Text in square brackets (`[]`) is optional. Text in angle brackets (`<>`) is a placeholder. The `reenter(C1eN1 failed)` part is the state. It is completely empty when the schedule is being followed normally, resulting in simply `E2::` in the beginning.
The state format is as follows: The real-time info is the `awake - next: N2.` part. It should be updated before and after each sleep, and indicate whether the user is awake or not, and what their next nap is. When asleep, the indicator should say the wake-up time and the current sleep ID: `asleep: C1 until 0430 - next: N2.`. `asleep` may be replaced with `sleeping`.

When no T-naps are used, the section can be left out, resulting in the minimal status being `E2:: -`.

Format for T-naps

T-naps, when indicated, have a slightly different format to normal sleeps, because they need to contain more info. This is best described using the following examples:
  Adding a sleep at a known time:
  => T1 (1430-1500)
  Removing the core sleep:
  => T-C1
  Changing the length of the core sleep:
  => TC1(2230-0230)
  Adding a sleep at an approximate time:
  => T2 (~1900:20m)
  Adding a sleep at an approximate time that may be skipped (? can be combined with all T-naps):
  => T3? (~2030:30m)
The approximate time contains the start and duration instead of the start and end. A duration may be added in other formats as well, even those with known times, for ease-of-reading, using the same `:[minutes]m` format.