code wiki / (root) / nx_consent.nx

nx_consent.nx

buildroot/runtime/nx_consent.nx

5334 B74 linesdepth 2pulls 2 transitivereach 3 importersview sourcekind librarytopic consent
docsdependenciesstructsconstsfunctions

about

nx_consent.nx -- CONSENT, PROVENANCE & LICENSE-TIER gate for character assets. Consent is the dividing line, so make it MECHANICAL (like never-brick #26: proven by construction, fail-closed, not asserted). A hired model licenses a GRADED TIER per their contract -- clothed-only -> standard artistic/figure nude (life drawing & painting reference) -> explicit -- across specific USE-CASES (art-modeling coaching / game / commercial / distribute). The DELIVERED nudity tier is set by what LAYERS cover the base (nx_outfit/makeup): a licensed nude base can be dressed DOWN to clothed, or delivered bare only within its tier. The pipeline calls consent_allows() before any delivery and is FAIL-CLOSED. Synthetic/fictional characters carry no real person -> ungated. license_tier: ORIGINAL

dependencies 1 imports · 2 importers

nx_syscalls.nx nx_consent.nx nx_char_asset.nx nx_consent_gate.nx

imports: nx_syscalls.nx

imported by: nx_char_asset.nxnx_consent_gate.nx

structs

none

consts

12const PROV_SYNTH: i64 = 0 // generated character (no real person) -> ungated
13const PROV_SCAN: i64 = 1 // photogrammetry/3D scan of a REAL hired model -> needs release + tier + scope
14const PROV_LIKENESS: i64 = 2 // authored from a real model's likeness -> needs release + tier + scope
16const LIC_CLOTHED: i64 = 0 // clothed depiction only
17const LIC_ARTISTIC: i64 = 1 // standard artistic / figure nude (life drawing & painting reference); non-explicit
18const LIC_EXPLICIT: i64 = 2 // explicit, per contract
20const USE_ART_COACH: i64 = 1 // nude-art-modeling reference / drawing & painting coaching
21const USE_GAME: i64 = 2 // game / interactive asset
22const USE_COMMERCIAL: i64 = 4 // commercial use
23const USE_DISTRIBUTE: i64 = 8 // publish / redistribute
24const USE_VR_INTERACTIVE: i64 = 16 // interactive / VR play (incl. explicit, at the explicit tier)
26const CR_OK: i64 = 0
27const CR_NO_RELEASE: i64 = 1
28const CR_TIER: i64 = 2 // licensed tier below what the delivery needs
29const CR_OUT_OF_SCOPE: i64 = 3 // a required use-case not in the license
30const CR_EXPIRED: i64 = 4

functions

58func interaction_explicit_allowed(rec: *i64, adult_verified: i64, now: i64) -> i64
called by 1: main calls 1: consent_allows
70func lic_tier_name(t: i64) -> *u8