Files
otivm/docs/parameter-registry.md
TheRON b00fe3a446 Add parameter-registry.md
Approved — three-layer parameter definitions with scope, layer, maturity
2026-04-28 11:57:52 -04:00

24 KiB
Raw Blame History

Parameter Registry

TheRON — OTIVM / CIVICVS / TESSERA Stack

Status: Living document — parameters added as established, never removed - Read and Approved

Date: 2026-04-28


0. Purpose

This document is the authoritative registry of all simulation parameters across all layers. It sits between the prose documents (scenarios, actor backgrounds, city substrates) and the SQL schema. It prevents the schema from prematurely flattening complex concepts into simple integers.

Every parameter here declares four structural fields before any values are given:

token:     canonical code identifier (snake_case, period-neutral)
scope:     actor | city | scenario | relation | derived
layer:     roman | mesolithic | universal
maturity:  canonical | provisional | research_needed

scope — where the parameter lives in the architecture:

  • actor — per-player, drifts with decisions, lives in per-player SQLite
  • city — shared across players, changes with events, lives in city substrate
  • scenario — exists within a scenario's active window only
  • relation — cross-layer dependency or derived interaction
  • derived — computed from other parameters, not stored independently

layer — which cultural period the parameter belongs to:

  • roman — Roman-specific, approximately 1st c. BCE to 1st c. CE
  • mesolithic — Mesolithic-specific, approximately 100004000 BCE
  • universal — exists across all periods with different expressions

maturity — confidence in the parameter's definition:

  • canonical — fully defined, passes all three admission tests, schema-ready
  • provisional — defined but awaiting research confirmation or design decision
  • research_needed — identified as necessary, definition incomplete

On uncertainty: parameters marked with observable: partial or observable: hidden must not be stored as clean point values. They carry epistemic status — the actor does not know their precise value, only signals. The schema must preserve this. A hidden parameter has a true value (server-side) and a perceived value (actor-side). These are different records.


1. Actor Parameters

Parameters that live in the per-player database and drift over time as the actor makes decisions. These are the twelve canonical parameters from CHARACTER-FRAMEWORK plus extensions identified through scenario development.


AVCTORITAS

token:    auctoritas
scope:    actor
layer:    roman
maturity: canonical

Definition: Social capital with legal and commercial consequences. Not a reputation score — a social reality that other actors respond to. Accumulated through correct conduct, reliable commercial behaviour, appropriate OTIUM, and maintained CLIENTELA. Lost through failure, disgrace, or unmet obligations.

Type: ordinal scale, not a precise number
Unit: none — expressed as a band (low / medium / high / distinguished)
Observable: partial — the actor infers their own AVCTORITAS from social signals, not from a ledger. The harbour master's speed, the factor's promptness, the willingness of witnesses to sign — these are the observables.

Drift mechanics:

  • Increases with: completed ventures, correct OTIUM, CLIENTELA maintenance, successful FAENUS recovery, public witness of reliability
  • Decreases with: defaulted obligations, visible commercial failure, association with disgraced parties, FAENUS seen as predatory, prolonged absence from social obligations
  • Lag: changes are not immediate — AVCTORITAS shifts over weeks, not days

Uncertainty: the actor's perceived AVCTORITAS may differ from their true AVCTORITAS. A recently failed magistrate may not yet know how damaged his standing is. A freedman may not know how much his practical reputation has grown.

Background starting values:

  • Former Legionary: medium
  • Freedman Trader: low
  • Noble Younger Son: high
  • Failed Magistrate: medium (falling — true value lower than perceived)
  • Camp Logistician: low
  • Guild Scribe: low

CLIENTELA

token:    clientela
scope:    actor
layer:    roman
maturity: canonical

Definition: The network of mutual obligation between the actor and their clients and patrons. Generates social access and information quality. Consumes OTIUM to maintain. A MERCATOR with strong CLIENTELA receives better information, better terms, and more reliable witnesses. One who neglects it finds doors closed.

Type: network strength — breadth and depth
Unit: none — expressed as low / medium / high / extensive
Observable: partial — the actor knows who they know, but not always whether those relationships remain active and reciprocal

Drift mechanics:

  • Increases with: OTIUM spent in social engagement, fulfilled obligations, reciprocal favours, successful introductions
  • Decreases with: neglect, failed obligations, social disgrace, prolonged travel away from home base
  • Lag: slow to build, faster to erode

LIQVIDITAS

token:    liquiditas
scope:    actor
layer:    roman
maturity: canonical

Definition: Liquid capital available for immediate deployment — denarii in hand, not goods pledged or debts owed. Distinct from total wealth. A MERCATOR may be asset-rich and liquidity-poor. LIQVIDITAS is what actually governs whether a venture can be initiated.

Type: quantity
Unit: denarii (as integer)
Observable: full — the actor knows exactly what liquid capital they hold

Drift mechanics:

  • Decreases with: venture cost, ITER expenses, PORTORIUM, personnel wages, HORREUM fees, FAENUS principal deployed
  • Increases with: venture profit, FAENUS interest received, asset liquidation
  • Immediate — no lag

FAMA

token:    fama
scope:    actor
layer:    roman
maturity: canonical

Definition: Public reputation — what is generally said about the actor. Distinct from AVCTORITAS (which is earned social capital) in that FAMA is more volatile, more vulnerable to rumour, and more sensitive to recent events. A single public failure can damage FAMA severely before AVCTORITAS is affected.

Type: ordinal with valence
Unit: none — expressed as low / neutral / mixed / good / distinguished
Observable: partial — the actor hears what is said about them, but not all of it, and not always accurately

Drift mechanics:

  • Volatile — responds quickly to visible events
  • Affected by: public success or failure, rumour, association with other actors, behaviour in visible social settings (BALNEA, forum)

DISCIPLINA

token:    disciplina
scope:    actor
layer:    roman
maturity: canonical

Definition: Operational reliability — the actor's capacity to execute plans consistently, manage personnel, maintain schedules, and function under pressure. Not military discipline specifically — commercial discipline. The ability to show up, follow through, and not improvise when improvisation is costly.

Type: ordinal
Unit: none — low / medium / high
Observable: full — the actor knows their own operational habits

Drift mechanics:

  • Stable — changes slowly through repeated behaviour patterns
  • Increases with: consistent venture execution, reliable scheduling
  • Decreases with: erratic behaviour, frequent plan changes, personnel failures

MERCATVS_SCIENTIA

token:    mercatus_scientia
scope:    actor
layer:    roman
maturity: canonical

Definition: Commercial knowledge — understanding of prices, goods, markets, seasonal patterns, and the logic of supply and demand. Determines whether the actor recognises opportunity, correctly prices ventures, and anticipates market movements.

Type: ordinal
Unit: none — low / medium / high
Observable: full — the actor knows what they know, though not what they don't know

Drift mechanics:

  • Increases with: completed ventures, market exposure, information from CLIENTELA
  • Background-specific: Freedman Trader and Camp Logistician start high; Noble Younger Son and Former Legionary start low

ITINERIS_SCIENTIA

token:    itineris_scientia
scope:    actor
layer:    roman
maturity: canonical

Definition: Route knowledge — familiarity with roads, sea lanes, waypoints, hazards, seasonal constraints, and the practical logistics of movement. Affects ITER duration estimates, ability to avoid delays, and recognition of route disruption.

Type: ordinal
Unit: none — low / medium / high
Observable: full

Drift mechanics:

  • Increases with: completed ITINERA, especially novel routes
  • Former Legionary and Camp Logistician start high

IVS_ACCESSVS

token:    ius_accessus
scope:    actor
layer:    roman
maturity: canonical

Definition: Legal access — the actor's practical ability to use the Roman legal system: to enforce contracts, recover debts, obtain witnesses, and resist legal pressure from others. Not just knowledge of law but standing within it. A freedman may know the law perfectly and still lack access.

Type: ordinal
Unit: none — low / medium / high
Observable: partial — the actor knows their formal standing but not always how it will be applied in a specific dispute

Drift mechanics:

  • Increases with: AVCTORITAS growth, CLIENTELA with legal contacts, successful contract enforcement
  • Noble Younger Son and Failed Magistrate start high

PERICVLVM_TOLERANTIA

token:    periculum_tolerantia
scope:    actor
layer:    roman
maturity: canonical

Definition: Risk tolerance — the actor's willingness and capacity to accept exposure to loss, physical danger, and uncertainty. Affects venture selection, route choice during MARE CLAVSVM, and FAENUS terms accepted.

Type: ordinal
Unit: none — low / medium / high
Observable: full

Drift mechanics:

  • Relatively stable — personality-level trait
  • May decrease after severe loss events

NEGOTIATIO

token:    negotiatio
scope:    actor
layer:    roman
maturity: canonical

Definition: Negotiation skill — the ability to achieve favourable terms in commercial and social exchanges. Affects prices obtained, FAENUS terms, FACTOR agreements, and conflict resolution.

Type: ordinal
Unit: none — low / medium / high
Observable: full


LITTERAE

token:    litterae
scope:    actor
layer:    roman
maturity: canonical

Definition: Literacy and accounting — the ability to read, write, and maintain accounts. Affects the actor's ability to detect fraud, draft contracts, and maintain a CODEX ACCEPTI ET EXPENSI. In 14 BCE Rome, not universal even among merchants.

Type: ordinal
Unit: none — low / medium / high
Observable: full


OFFICIA_BVRDEN

token:    officia_burden
scope:    actor
layer:    roman
maturity: canonical

Definition: Obligation load — the accumulated weight of social, civic, and personal obligations competing with NEGOTIVM for the actor's time. High OFFICIA_BVRDEN reduces available time for ventures and forces OTIUM expenditure on obligations rather than restoration.

Type: ordinal
Unit: none — low / medium / high
Observable: partial — the actor knows their formal obligations but may underestimate the informal ones

Drift mechanics:

  • Increases with: AVCTORITAS growth (more people seek patronage), CLIENTELA expansion, Noble Younger Son background
  • Decreases with: fulfilled obligations, deliberate social withdrawal

BACKGROUND_DRIFT

token:    background_drift
scope:    actor
layer:    universal
maturity: canonical

Definition: The degree to which the actor's starting background profile still governs their parameter values versus the profile created by their decisions. A Former Legionary who has conducted fifty FAENUS transactions has drifted toward Guild Scribe behaviour. Background effects decay; decision history accumulates.

Type: 0.0 to 1.0 float per parameter (1.0 = fully background-governed, 0.0 = fully decision-governed)
Observable: hidden — the actor experiences this as gradual change in how the world responds to them, not as a visible number


2. City Parameters

Parameters shared across players, anchored to a specific city substrate. These change through events, not individual player decisions. They live in the city substrate layer, not the per-player database.


RVMOR_VELOCITAS

token:    rumor_velocity
scope:    city
layer:    roman
maturity: canonical

Definition: The speed at which information (accurate and inaccurate) moves through a city's social network. High in port cities, baths, and dense market districts. Affects how quickly scenario events are known, how distorted they become in transmission, and how fast prices adjust.

Drift: increases with transient population, decreases in winter


DOCK_CONGESTION

token:    dock_congestion_index
scope:    city
layer:    roman
maturity: canonical

Definition: Pressure on port loading and unloading capacity. Affects ITER departure delay, BAIВLVS availability, and PORTORIUM queue time.

Drift: seasonal — peaks in spring and autumn, low in MARE CLAVSVM


STORAGE_FEE_INDEX

token:    storage_fee_index
scope:    city
layer:    roman
maturity: provisional

Definition: Market rate for HORREUM storage. Rises when warehouse capacity is constrained by high cargo volume or when distressed sellers need to hold goods while awaiting better prices.

Research needed: specific rate data for Ostia, 1st c. BCE


BATH_SOCIAL_DENSITY

token:    bath_social_density
scope:    city
layer:    roman
maturity: canonical

Definition: The social richness of the BALNEA as an information and relationship node. Determines the quality of rumour available and the probability of encountering useful contacts during OTIUM.

Drift: time-of-day dependent (midday peak), seasonal


token:    legal_access_index
scope:    city
layer:    roman
maturity: provisional

Definition: The practical availability and reliability of legal enforcement in this city. Varies by magistrate quality, current political pressure, and backlog. Affects IVS_ACCESSVS modifiers for all actors.


FIRE_RISK_INDEX

token:    fire_risk_index
scope:    city
layer:    universal
maturity: canonical

Definition: Background probability of industrial or residential fire in a city zone. Drives scenario trigger probability for SCENARIO-MERCHANT-0001 and similar events.

Drift: increases with workshop density, dry season, high transient population


RENT_PRESSURE_INDEX

token:    rent_pressure_index
scope:    city
layer:    roman
maturity: provisional

Drift: increases with transient population factor

Research needed: Ostia lodging costs, 1st c. BCE


FOOD_PRICE_INDEX

token:    food_price_index
scope:    city
layer:    universal
maturity: provisional

Research needed: Ostia grain and prepared food prices, 1st c. BCE


PORTER_AVAILABILITY

token:    porter_availability
scope:    city
layer:    universal
maturity: provisional

Drift: seasonal, event-sensitive (disrupted by fires, floods, political events)

Research needed: BAIВLVS wage rates, 1st c. BCE Ostia


CART_AVAILABILITY

token:    cart_availability
scope:    city
layer:    universal
maturity: provisional

Drift: decreases during scenario events involving transport disruption

Research needed: cart hire rates, Via Appia, 1st c. BCE


3. Scenario Parameters

Parameters that exist only within a scenario's active window. They are created when a scenario triggers, evolve during it, and are archived when it closes. They must not persist into the city substrate as permanent values — they are transient pressures, not permanent conditions.


WORKSHOP_OUTPUT_BRONZE

token:    workshop_output_bronze
scope:    scenario
layer:    roman
maturity: canonical

Scenario: SCENARIO-MERCHANT-0001
Definition: Current production capacity of bronze workshops in the affected district. Drops to near zero at scenario start, recovers over rebuild_delay_days.


VRBAN_FIRE_DAMAGE

token:    urban_fire_damage
scope:    scenario
layer:    universal
maturity: canonical

Definition: Severity of fire damage to a specific district. Drives multiple secondary parameter effects.
Type: ordinal — minor / significant / severe / catastrophic


TIMBER_STOCK_DESTROYED

token:    timber_stock_destroyed
scope:    scenario
layer:    universal
maturity: canonical

Scenario: SCENARIO-MERCHANT-0002
Definition: Volume of seasoned timber stock lost in the Capuan yard fire. Governs the magnitude of downstream shortage effects.


BORROWER_DISTRESS

token:    borrower_distress
scope:    scenario
layer:    universal
maturity: canonical

Scenario: SCENARIO-MERCHANT-0003
Definition: Financial and operational stress level of the counterparty seeking FAENUS. Governs offered return, default probability, and collateral availability.
Type: ordinal — stable / stressed / distressed / insolvent
Observable: hidden — the actor infers from signals, never knows precisely


RVMOR_CREDIBILITY

token:    rumor_credibility
scope:    scenario
layer:    universal
maturity: canonical

Definition: How accurate the current circulating rumour about a scenario event is. High rumour credibility means the market has correctly interpreted the event. Low means prices have not yet adjusted correctly — creating opportunity or risk depending on the actor's knowledge.
Observable: hidden to actor — server-side truth only


VENTURE_WINDOW_DAYS

token:    venture_window_days
scope:    scenario
layer:    universal
maturity: canonical

Definition: The number of days before the scenario's primary market opportunity closes — either through price normalisation, competitor action, or external resolution of the event.
Observable: partial — the actor estimates this from signals, cannot know it precisely


HIDDEN_CAUSE_STATE

token:    hidden_cause_state
scope:    scenario
layer:    universal
maturity: canonical

Definition: The true cause of the inciting scenario event, selected from the hidden cause variant table at scenario seed time. Never revealed to the actor directly. Governs which secondary effects dominate and how quickly the scenario resolves.
Observable: hidden — signals only


SCENARIO_CHAIN_FLAG

token:    scenario_chain_flag
scope:    scenario
layer:    universal
maturity: canonical

Definition: Whether a prior scenario in the chain has occurred in this world seed. recent_scenario_0001 == true modifies recovery speed in 0002. recent_scenario_0001 or 0002 == true increases FAENUS opportunity in 0003.
Type: boolean per scenario ID


4. Relation and Derived Parameters

Parameters that exist at the intersection of layers — cross-layer dependencies, epistemic states, and derived values. These are first-class records, not comments in the schema.


INFORMATION_QUALITY

token:    information_quality
scope:    relation
layer:    universal
maturity: canonical

Definition: The accuracy and completeness of the information available to a specific actor about a specific event or market state. Function of CLIENTELA strength, rumor_velocity, and actor's location relative to the event.
Type: 0.0 to 1.0 float (0.0 = pure noise, 1.0 = complete truth)
Observable: hidden — the actor does not know how good their information is


CONFIDENCE_TAG

token:    confidence_tag
scope:    relation
layer:    universal
maturity: canonical

Definition: The epistemic confidence attached to any parameter value, derived from source quality and inference chain length. Mirrors the confidence tags used in research documents.
Type: enum — measured | indicated | inferred | estimated | unknown
Use: attached to any parameter record where the value is not directly observable or where source quality is limited. Must be a first-class field in the schema, not a comment.


DELAYED_KNOWLEDGE

token:    delayed_knowledge
scope:    relation
layer:    universal
maturity: canonical

Definition: The lag between when a scenario event occurs and when a specific actor's information_quality reflects it accurately. A MERCATOR in Ostia learns about the Capuan timber fire after a delay determined by route distance, rumor_velocity, and CLIENTELA reach.
Type: integer days
Use: applied per actor per scenario event


PERCEIVED_VS_TRUE

token:    perceived_vs_true
scope:    relation
layer:    universal
maturity: canonical

Definition: The structural distinction between a parameter's true value (server-side ground truth) and the actor's perceived value (what they believe or can infer). Applies to: AVCTORITAS, FAMA, borrower_distress, hidden_cause_state, rumor_credibility, information_quality, and any parameter marked observable: partial or observable: hidden.
Schema implication: parameters with perceived_vs_true distinction require two records — value_true and value_perceived — not one. This is not optional.


BACKGROUND_AFFINITY

token:    background_affinity
scope:    relation
layer:    universal
maturity: canonical

Definition: The degree of match between a specific actor's current parameter profile and each of the six canonical backgrounds. Used to detect background drift and to surface narrative signals to the actor about how others perceive them.
Type: 0.0 to 1.0 float per background_id


5. Universal Parameters (Cross-Period)

Parameters marked layer: universal are candidates for the cross-period schema shared between OTIVM and CIVICVS. They appear in both periods with different expressions but the same underlying structure.

Token Roman expression Mesolithic expression
liquiditas denarii calories, stored food, portable goods
information_quality rumour in BALNEA territorial knowledge
rumor_velocity port city gossip inter-clan communication speed
periculum_tolerantia maritime risk acceptance predator territory tolerance
fire_risk_index urban workshop density hearth and camp fire risk
venture_window_days market opportunity window seasonal foraging window
confidence_tag source quality archaeological confidence
delayed_knowledge route distance lag territorial range lag

These mappings are provisional. The Mesolithic expressions will be confirmed through corpus development.


6. Stub Parameters — Research Needed

Parameters identified as necessary but not yet fully defined. Listed here to prevent schema decisions that assume they do not exist.

Token Scope Layer What is needed
portorium_rate scenario roman Specific rate data per crossing point, 1st c. BCE
vectура_rate scenario roman Freight charge per cargo unit per leg, research brief target
naufragium_probability scenario roman Per-voyage shipwreck probability from archaeological record
mare_clausum_state city roman Binary seasonal flag with transition probability
collegium_presence city roman Whether a relevant COLLEGIUM operates in this city
factor_reliability actor roman FACTOR NPC trustworthiness — future release
occ_flag city mesolithic Occupation evidence from TESSERA stage 06 — pipeline dependency
terrain_restoration city mesolithic HYDE 3.3 / KK10 corrected terrain — pipeline dependency

7. Admission Rules

A parameter is admitted to this registry when it passes all three tests from terminology.md:

  1. Period-authentic or explicitly universal
  2. Semantically distinct from existing parameters
  3. Scope-bounded — cannot be misapplied across layers without the misapplication being visible

A parameter may be added at any maturity level. It may never be removed. Deprecated parameters are marked maturity: deprecated with a note on what superseded them.


Parameter Registry — living document, 2026-04-28 Uncertainty is a first-class record, not a comment. TheRON — single contributor. AI assistants implement, document, flag — do not direct.