2.0.0 • Published 1 year ago

systemspeclib v2.0.0

Weekly downloads
-
License
LGPL-v3.0-only
Repository
github
Last release
1 year ago

SystemSpecLib

What is SystemSpec?

SystemSpec is an alternative to Multiple Code Redux (MCR), a format for sharing basic information about plural systems in a relatively concise form. Unfourtunately, MCR is extremely verbose (less so than the information it contains, but still too much to be useful), is not machine readable, and frankly is not human readable either without a reference. For example, the "Species" field in MCR has 167 explicitly defined options, and each of those can be augmented by any or all of 6 different modifiers. MCR also contains fields and options for information that is hardly relevant to a system's plurality, such as career, relationship availability, and even interest in roleplaying games. SystemSpec seeks to be both machine and human readable (with a priority for the prior), concise, and to contain only strictly relevant fields to minimize extraneous information and verbosity.

SystemSpec Fields

Field NameRequired?Can Be Fuzzy?Field InitialField DescriptionField Options
Body AgeYesNoBThe age of the system's bodyAny positive integer
Member Age Lower LimitNoYesMThe age of the system's youngest alterAny positive integer, must be less than U if both are specified
Member Age Upper LimitNoYesUThe age of the system's oldest alterAny positive integer, must be greater than M if both are specified
Presented GenderYesNoGThe gender with which the system presents when maskingAny option from the Gender enum
Presented Sexual OrientationYesNoSThe sexual orientation with which the system presents when maskingAny option from the SexualOrientation enum
Presented Romantic OrientationYesNoRThe romantic orientation with which the system presents when maskingAny option from the RomanticOrientation enum
Non-Human PopulationNoYesHThe presence of alters in the system who identify as non-humanAny option from the NonHumanPopulation enum
Communication DegreeYesNoIThe degree to which alters in the system are able to communicateAny option from the IntegrationDegree enum
Memory Sharing DegreeYesNoEThe degree to which alters in the system are able to share memoriesAny option from the IntegrationDegree enum
Real Life Outness DegreeYesNoLThe degree to which the system is open about their plurality in real-life interactionsAny option from the OutnessDegree enum
Online Outness DegreeYesNoOThe degree to which the system is open about their plurality in online interactionsAny option from the OutnessDegree enum
Preferred TermNoNoPThe term by which alters in the system prefer to be calledAny option from the PreferredTerm enum

Fuzziness

Some values can be labelled with a "fuzziness" value, which is represented by a flag of the form Fn where n is the value that follows the main flag and value. Fuzziness indicates the degree of certainty that the system has with regards to that value. For example, they may know that their member count is roughly 13, but not be sure exactly what it is. In this case, instead of just C13, they could use C13F1 to indicate that 13 is just a rough estimate.

SystemSpec Short-Form

SystemSpec, when handled by a website or other program, should be formatted as JSON (as defined by the SystemSpec type in this library). If a system would like to share their SystemSpec in a more concise form, the Short-Form or Shortform is a standardized way of doing so. In Short-Form, each field is represented as its initial followed by an integer representing its value. Conversion to Short-Form is very straightforward:

  • For fields whose values are numbers, simply use the number
  • For fields whose values are enum options, use the index of the value in its enum
    • For example, Female has an index of 0 in the Gender enum, and therefore its representation would be G0
  • For the "System Has Non-Human Alters" field, use 1 for true and 0 for false
2.0.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago