{ "derivations": [ { "authority": "input_mechanical", "basis": "The syntax expectation is deterministically derived from immutable fixture bytes by the executable line-token scan rule.", "decision": null, "field": "syntax_expected", "locator": "corpus/pm82-texmap-boundaries.expected.json; sha256:ee0f7f5bccd982ada4d38e80c3d69af2520414fb3ef39c38fc9edf29625eaac0", "revision": "PM-78 pm-78-oracle-only-v4", "source": "PM-78 oracle-only generator" }, { "authority": "polymodel_policy", "basis": "PM-77 limit names are adapter policy and are not emitted by LDParse.", "decision": null, "field": "polymodel_policy_expected.limits", "locator": "corpus/pm82-texmap-boundaries.expected.json; sha256:ee0f7f5bccd982ada4d38e80c3d69af2520414fb3ef39c38fc9edf29625eaac0", "revision": "PM-78 pm-78-oracle-only-v4", "source": "PM-78 oracle-only generator" }, { "authority": "input_mechanical", "basis": "LDParse has no TEXMAP projection; this value is deterministically derived from immutable fixture bytes by the executable policy rule.", "decision": null, "field": "polymodel_policy_expected.texmap_events", "locator": "corpus/pm82-texmap-boundaries.expected.json; sha256:ee0f7f5bccd982ada4d38e80c3d69af2520414fb3ef39c38fc9edf29625eaac0", "revision": "PM-78 pm-78-oracle-only-v4", "source": "PM-78 oracle-only generator" }, { "authority": "input_mechanical", "basis": "LDParse has no TEXMAP geometry projection; this value is deterministically derived from immutable fixture bytes by the executable policy rule.", "decision": null, "field": "polymodel_policy_expected.texmap_geometry", "locator": "corpus/pm82-texmap-boundaries.expected.json; sha256:ee0f7f5bccd982ada4d38e80c3d69af2520414fb3ef39c38fc9edf29625eaac0", "revision": "PM-78 pm-78-oracle-only-v4", "source": "PM-78 oracle-only generator" }, { "authority": "input_mechanical", "basis": "LDParse has no DATA payload projection; this value is deterministically derived from immutable fixture bytes by the executable policy rule.", "decision": null, "field": "polymodel_policy_expected.data_payloads", "locator": "corpus/pm82-texmap-boundaries.expected.json; sha256:ee0f7f5bccd982ada4d38e80c3d69af2520414fb3ef39c38fc9edf29625eaac0", "revision": "PM-78 pm-78-oracle-only-v4", "source": "PM-78 oracle-only generator" } ], "generated": { "authority": "ldparse_oracle_with_policy", "fixture_path": "crates/polymodel-ldraw-testkit/corpus/pm82-texmap-boundaries.ldr", "fixture_sha256": "ee0f7f5bccd982ada4d38e80c3d69af2520414fb3ef39c38fc9edf29625eaac0", "oracle_revision": "0fe78dcee22982f26cceced1b483340faa4d04e9", "patch_identity": "ldparse-oracle-access.patch@pm-78-v2", "projection_rule_version": "pm-78-oracle-only-v4", "wrapper_schema_version": "wrapper-v4" }, "oracle_expected": { "authority_rules": { "classes": [ "oracle_direct", "oracle_mechanical", "input_mechanical", "polymodel_policy" ], "rules": [ { "class": "polymodel_policy", "evidence": "Fixture outcome is workflow metadata and is not emitted by LDParse.", "path": "outcome", "rule": "copy_manifest_outcome" }, { "class": "polymodel_policy", "evidence": "Parser profile is workflow metadata and is not emitted by LDParse.", "path": "profile", "rule": "copy_manifest_profile" }, { "class": "polymodel_policy", "evidence": "Derivation references document authority and are not semantic values.", "path": "derivations", "rule": "preserve_authority_trace" }, { "class": "input_mechanical", "evidence": "The syntax expectation is deterministically derived from immutable fixture bytes by the executable line-token scan rule.", "path": "syntax_expected", "rule": "syntax_scan_v1" }, { "class": "oracle_direct", "evidence": "Complete pinned LDParse wrapper output; runtime attestation is required.", "path": "oracle_expected.schema_version", "rule": "oracle.schema_version" }, { "class": "oracle_direct", "evidence": "Complete pinned LDParse wrapper output.", "path": "oracle_expected.fixture_path", "rule": "oracle.fixture_path" }, { "class": "oracle_direct", "evidence": "Complete pinned LDParse wrapper output.", "path": "oracle_expected.status", "rule": "oracle.status" }, { "class": "oracle_direct", "evidence": "Pinned LDParse model-boundary output.", "path": "oracle_expected.model_names", "rule": "oracle.model_names" }, { "class": "oracle_direct", "evidence": "Preserve complete LDParse model, mesh, child, BFC, colour, and step fields.", "path": "oracle_expected.root_model", "rule": "oracle.root_model" }, { "class": "oracle_direct", "evidence": "Preserve complete LDParse submodel cache projection.", "path": "oracle_expected.models", "rule": "oracle.models" }, { "class": "oracle_direct", "evidence": "Preserve token and span data emitted by the LDParse lexer.", "path": "oracle_expected.tokenized_models", "rule": "oracle.tokenized_models" }, { "class": "oracle_direct", "evidence": "Preserve token-stream geometry counts and source positions emitted by the LDParse wrapper.", "path": "oracle_expected.tokenized_geometry", "rule": "oracle.tokenized_geometry" }, { "class": "oracle_direct", "evidence": "Preserve recursively resolved geometry counts emitted by the LDParse wrapper.", "path": "oracle_expected.resolved_geometry", "rule": "oracle.resolved_geometry" }, { "class": "oracle_direct", "evidence": "Preserve diagnostics emitted through the LDParse error callback.", "path": "oracle_expected.diagnostics", "rule": "oracle.diagnostics" }, { "class": "oracle_direct", "evidence": "Preserve native wrapper status/error classification without normalization.", "path": "oracle_expected.error", "rule": "oracle.error" }, { "class": "oracle_direct", "evidence": "Pinned executable attestation of the external LDParse revision; generator verifies it against the corpus manifest.", "path": "oracle_expected.oracle_revision", "rule": "oracle.oracle_revision" }, { "class": "oracle_direct", "evidence": "Pinned executable wrapper attestation; generator verifies runtime output rather than stamping it.", "path": "oracle_expected.wrapper_schema_version", "rule": "oracle.wrapper_schema_version" }, { "class": "oracle_direct", "evidence": "Pinned executable projection-rule attestation; generator verifies runtime output against the checked-in rule table.", "path": "oracle_expected.projection_rule_version", "rule": "oracle.projection_rule_version" }, { "class": "oracle_direct", "evidence": "Pinned executable attestation of the LDParse access patch; generator verifies runtime output.", "path": "oracle_expected.patch_identity", "rule": "oracle.patch_identity" }, { "class": "input_mechanical", "evidence": "Generator hashes immutable fixture bytes at the process boundary.", "path": "oracle_expected.fixture_sha256", "rule": "sha256_fixture_bytes" }, { "class": "oracle_mechanical", "evidence": "Generator embeds and validates this exact checked-in authority table.", "path": "oracle_expected.authority_rules", "rule": "checked_in_rules_json" }, { "class": "polymodel_policy", "evidence": "PM-77 limit names are adapter policy and are not emitted by LDParse.", "path": "polymodel_policy_expected.limits", "rule": "constant_ldraw_limits" }, { "class": "input_mechanical", "evidence": "LDParse has no TEXMAP projection; this value is deterministically derived from immutable fixture bytes by the executable policy rule.", "path": "polymodel_policy_expected.texmap_events", "rule": "texmap_scan_v1" }, { "class": "input_mechanical", "evidence": "LDParse has no TEXMAP geometry projection; this value is deterministically derived from immutable fixture bytes by the executable policy rule.", "path": "polymodel_policy_expected.texmap_geometry", "rule": "texmap_scan_v1" }, { "class": "input_mechanical", "evidence": "LDParse has no DATA payload projection; this value is deterministically derived from immutable fixture bytes by the executable policy rule.", "path": "polymodel_policy_expected.data_payloads", "rule": "data_scan_v1" }, { "class": "polymodel_policy", "evidence": "The Rust core does not expose LDParse token-stream mesh vertices/normals/indices or native token objects; these paths are explicitly scoped out rather than defaulted.", "path": "rust_candidate_observation.non_comparable", "rule": "explicit_scope_non_comparability" } ], "version": "pm-78-oracle-only-v4" }, "diagnostics": [], "error": null, "fixture_path": "crates/polymodel-ldraw-testkit/corpus/pm82-texmap-boundaries.ldr", "fixture_sha256": "ee0f7f5bccd982ada4d38e80c3d69af2520414fb3ef39c38fc9edf29625eaac0", "model_names": [ "pm77-pm82-texmap-boundaries" ], "models": [ { "certify": "unknown", "children": [], "default_color": 16, "local_colors": [], "mesh": { "bf_indices": [], "bf_triangle_count": 0, "indices": [], "normal_count": 0, "normals": [], "positions": [], "triangle_count": 0, "vertex_count": 0 }, "model_index": 0, "name": "pm77-pm82-texmap-boundaries", "path": "pm82-texmap-boundaries.ldr", "step_ends": [ 0 ], "winding": "off" } ], "oracle_revision": "0fe78dcee22982f26cceced1b483340faa4d04e9", "patch_identity": "ldparse-oracle-access.patch@pm-78-v2", "projection_rule_version": "pm-78-oracle-only-v4", "resolved_geometry": { "conditional_lines": 0, "includes": 0, "lines": 0, "quads": 0, "triangle_positions": [], "triangles": 0 }, "root_model": { "certify": "unknown", "children": [], "default_color": 16, "local_colors": [], "mesh": { "bf_indices": [], "bf_triangle_count": 0, "indices": [], "normal_count": 0, "normals": [], "positions": [], "triangle_count": 0, "vertex_count": 0 }, "model_index": 0, "name": "pm77-pm82-texmap-boundaries", "path": "pm82-texmap-boundaries.ldr", "step_ends": [ 0 ], "winding": "off" }, "schema_version": "ldraw-oracle-v4", "status": "ok", "tokenized_geometry": { "conditional_lines": 0, "includes": 0, "lines": 0, "quads": 0, "triangle_positions": [], "triangles": 0 }, "tokenized_models": [ { "lines": [ { "index": 0, "text": "0 PM-82 TEXMAP boundary fixture", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 0, "value": 0 }, { "column": 2, "kind": "ident", "kind_code": -3, "line": 0, "value": "PM-82" }, { "column": 8, "kind": "ident", "kind_code": -3, "line": 0, "value": "TEXMAP" }, { "column": 15, "kind": "ident", "kind_code": -3, "line": 0, "value": "boundary" }, { "column": 24, "kind": "ident", "kind_code": -3, "line": 0, "value": "fixture" } ] }, { "index": 1, "text": "0 !TEXMAP START PLANAR 0 0 0 10 0 0 0 10 0 \"pm82 albedo.png\"", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 1, "value": "!TEXMAP" }, { "column": 10, "kind": "ident", "kind_code": -3, "line": 1, "value": "START" }, { "column": 16, "kind": "ident", "kind_code": -3, "line": 1, "value": "PLANAR" }, { "column": 23, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 25, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 27, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 29, "kind": "dec_int", "kind_code": -5, "line": 1, "value": 10 }, { "column": 32, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 34, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 36, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 38, "kind": "dec_int", "kind_code": -5, "line": 1, "value": 10 }, { "column": 41, "kind": "zero", "kind_code": 0, "line": 1, "value": 0 }, { "column": 43, "kind": "ident", "kind_code": -3, "line": 1, "value": "" }, { "column": 45, "kind": "ident", "kind_code": -3, "line": 1, "value": "pm82 albedo.png" } ] }, { "index": 2, "text": "0 !: 3 16 0 0 0 10 0 0 0 10 0", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 2, "value": "!:" }, { "column": 5, "kind": "three", "kind_code": 3, "line": 2, "value": 3 }, { "column": 7, "kind": "dec_int", "kind_code": -5, "line": 2, "value": 16 }, { "column": 10, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 }, { "column": 12, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 }, { "column": 14, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 }, { "column": 16, "kind": "dec_int", "kind_code": -5, "line": 2, "value": 10 }, { "column": 19, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 }, { "column": 21, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 }, { "column": 23, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 }, { "column": 25, "kind": "dec_int", "kind_code": -5, "line": 2, "value": 10 }, { "column": 28, "kind": "zero", "kind_code": 0, "line": 2, "value": 0 } ] }, { "index": 3, "text": "0 !TEXMAP NEXT CYLINDRICAL 0 0 0 0 10 0 0 0 1 360 \"pm82 next.png\"", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 3, "value": "!TEXMAP" }, { "column": 10, "kind": "ident", "kind_code": -3, "line": 3, "value": "NEXT" }, { "column": 15, "kind": "ident", "kind_code": -3, "line": 3, "value": "CYLINDRICAL" }, { "column": 27, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 29, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 31, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 33, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 35, "kind": "dec_int", "kind_code": -5, "line": 3, "value": 10 }, { "column": 38, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 40, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 42, "kind": "zero", "kind_code": 0, "line": 3, "value": 0 }, { "column": 44, "kind": "one", "kind_code": 1, "line": 3, "value": 1 }, { "column": 46, "kind": "dec_int", "kind_code": -5, "line": 3, "value": 360 }, { "column": 50, "kind": "ident", "kind_code": -3, "line": 3, "value": "" }, { "column": 52, "kind": "ident", "kind_code": -3, "line": 3, "value": "pm82 next.png" } ] }, { "index": 4, "text": "0 !: 4 16 0 0 0 10 0 0 10 10 0 0 10 0", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 4, "value": "!:" }, { "column": 5, "kind": "four", "kind_code": 4, "line": 4, "value": 4 }, { "column": 7, "kind": "dec_int", "kind_code": -5, "line": 4, "value": 16 }, { "column": 10, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 12, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 14, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 16, "kind": "dec_int", "kind_code": -5, "line": 4, "value": 10 }, { "column": 19, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 21, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 23, "kind": "dec_int", "kind_code": -5, "line": 4, "value": 10 }, { "column": 26, "kind": "dec_int", "kind_code": -5, "line": 4, "value": 10 }, { "column": 29, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 31, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 }, { "column": 33, "kind": "dec_int", "kind_code": -5, "line": 4, "value": 10 }, { "column": 36, "kind": "zero", "kind_code": 0, "line": 4, "value": 0 } ] }, { "index": 5, "text": "0 !TEXMAP FALLBACK", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 5, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 5, "value": "!TEXMAP" }, { "column": 10, "kind": "ident", "kind_code": -3, "line": 5, "value": "FALLBACK" } ] }, { "index": 6, "text": "0 !: 3 16 0 0 0 10 0 0 0 10 0", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 6, "value": "!:" }, { "column": 5, "kind": "three", "kind_code": 3, "line": 6, "value": 3 }, { "column": 7, "kind": "dec_int", "kind_code": -5, "line": 6, "value": 16 }, { "column": 10, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 }, { "column": 12, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 }, { "column": 14, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 }, { "column": 16, "kind": "dec_int", "kind_code": -5, "line": 6, "value": 10 }, { "column": 19, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 }, { "column": 21, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 }, { "column": 23, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 }, { "column": 25, "kind": "dec_int", "kind_code": -5, "line": 6, "value": 10 }, { "column": 28, "kind": "zero", "kind_code": 0, "line": 6, "value": 0 } ] }, { "index": 7, "text": "0 !TEXMAP END", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 7, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 7, "value": "!TEXMAP" }, { "column": 10, "kind": "ident", "kind_code": -3, "line": 7, "value": "END" } ] }, { "index": 8, "text": "0 STEP", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 8, "value": 0 }, { "column": 2, "kind": "step", "kind_code": 6, "line": 8, "value": "STEP" } ] }, { "index": 9, "text": "0 !TEXMAP START SPHERICAL 0 0 0 0 1 0 0 0 1 360 180 \"pm82 sphere.png\"", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 9, "value": "!TEXMAP" }, { "column": 10, "kind": "ident", "kind_code": -3, "line": 9, "value": "START" }, { "column": 16, "kind": "ident", "kind_code": -3, "line": 9, "value": "SPHERICAL" }, { "column": 26, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 28, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 30, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 32, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 34, "kind": "one", "kind_code": 1, "line": 9, "value": 1 }, { "column": 36, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 38, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 40, "kind": "zero", "kind_code": 0, "line": 9, "value": 0 }, { "column": 42, "kind": "one", "kind_code": 1, "line": 9, "value": 1 }, { "column": 44, "kind": "dec_int", "kind_code": -5, "line": 9, "value": 360 }, { "column": 48, "kind": "dec_int", "kind_code": -5, "line": 9, "value": 180 }, { "column": 52, "kind": "ident", "kind_code": -3, "line": 9, "value": "" }, { "column": 54, "kind": "ident", "kind_code": -3, "line": 9, "value": "pm82 sphere.png" } ] }, { "index": 10, "text": "0 !: 5 16 0 0 0 10 0 0 10 10 0 0 10 0", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 10, "value": "!:" }, { "column": 5, "kind": "five", "kind_code": 5, "line": 10, "value": 5 }, { "column": 7, "kind": "dec_int", "kind_code": -5, "line": 10, "value": 16 }, { "column": 10, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 12, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 14, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 16, "kind": "dec_int", "kind_code": -5, "line": 10, "value": 10 }, { "column": 19, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 21, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 23, "kind": "dec_int", "kind_code": -5, "line": 10, "value": 10 }, { "column": 26, "kind": "dec_int", "kind_code": -5, "line": 10, "value": 10 }, { "column": 29, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 31, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 }, { "column": 33, "kind": "dec_int", "kind_code": -5, "line": 10, "value": 10 }, { "column": 36, "kind": "zero", "kind_code": 0, "line": 10, "value": 0 } ] }, { "index": 11, "text": "0 !TEXMAP END", "tokens": [ { "column": 0, "kind": "zero", "kind_code": 0, "line": 11, "value": 0 }, { "column": 2, "kind": "garbage", "kind_code": -2, "line": 11, "value": "!TEXMAP" }, { "column": 10, "kind": "ident", "kind_code": -3, "line": 11, "value": "END" } ] }, { "index": 12, "text": "", "tokens": [] } ], "model_index": 0, "name": "pm77-pm82-texmap-boundaries" } ], "wrapper_schema_version": "wrapper-v4" }, "outcome": "accepted", "polymodel_policy_expected": { "data_payloads": [], "limits": [ "resource_bytes", "line_bytes", "files", "include_depth", "commands", "instances", "triangles", "lines", "textures", "fetches", "diagnostics" ], "texmap_events": [ { "kind": "start", "mode": "planar", "parameters": [ "0", "0", "0", "10", "0", "0", "0", "10", "0" ], "reference": "pm82 albedo.png", "state": "active" }, { "kind": "next", "mode": "cylindrical", "parameters": [ "0", "0", "0", "0", "10", "0", "0", "0", "1", "360" ], "reference": "pm82 next.png", "state": "active" }, { "kind": "fallback", "mode": null, "parameters": [], "reference": null, "state": "fallback" }, { "kind": "end", "mode": null, "parameters": [], "reference": null, "state": "inactive" }, { "kind": "start", "mode": "spherical", "parameters": [ "0", "0", "0", "0", "1", "0", "0", "0", "1", "360", "180" ], "reference": "pm82 sphere.png", "state": "active" }, { "kind": "end", "mode": null, "parameters": [], "reference": null, "state": "inactive" } ], "texmap_geometry": [ { "association": { "fallback": false, "glossmap": null, "mode": "planar", "parameters": [ "0", "0", "0", "10", "0", "0", "0", "10", "0" ], "pngfile": "pm82 albedo.png" }, "line_type": 3 }, { "association": { "fallback": false, "glossmap": null, "mode": "cylindrical", "parameters": [ "0", "0", "0", "0", "10", "0", "0", "0", "1", "360" ], "pngfile": "pm82 next.png" }, "line_type": 4 }, { "association": { "fallback": true, "glossmap": null, "mode": "cylindrical", "parameters": [ "0", "0", "0", "0", "10", "0", "0", "0", "1", "360" ], "pngfile": "pm82 next.png" }, "line_type": 3 }, { "association": { "fallback": false, "glossmap": null, "mode": "spherical", "parameters": [ "0", "0", "0", "0", "1", "0", "0", "0", "1", "360", "180" ], "pngfile": "pm82 sphere.png" }, "line_type": 5 } ] }, "profile": "strict", "syntax_expected": [] }