{
    "format": "csv",
    "definitions": {},
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "http://example.com/root.json",
    "type": "object",
    "title": "GRAS Component Schema",
    "required": [
        "prod_no",
        "component_no",
        "no_of_tracks",
        "config_key",
        "has_diff_platform",
        "p_line",
        "play_time_a",
        "play_time_b",
        "times_are_generated",
        "prod_info_a_tid",
        "prod_info_b_tid",
        "scribe_no_a",
        "scribe_no_b",
        "component_id",
        "excl_comp_from_complete",
        "rev_alloc_percent",
        "mod_stamp",
        "mod_flag"
    ],
    "properties": {
        "prod_no": {
            "$id": "#/properties/prod_no",
            "type": "string",
            "title": "Product Number",
            "pattern": "^(.*)$"
        },
        "component_no": {
            "$id": "#/properties/component_no",
            "type": "string",
            "title": "Component Number",
            "pattern": "^(.*)$"
        },
        "no_of_tracks": {
            "$id": "#/properties/no_of_tracks",
            "type": "integer",
            "title": "Number of Tracks"
        },
        "config_key": {
            "$id": "#/properties/config_key",
            "type": "string",
            "title": "Configuration Key",
            "pattern": "^(.*)$"
        },
        "has_diff_platform": {
            "$id": "#/properties/has_diff_platform",
            "type": "string",
            "title": "Has Different Platform",
            "enum": ["Y", "N"]
        },
        "p_line": {
            "$id": "#/properties/p_line",
            "type": "string",
            "title": "P Line",
            "pattern": "^(.*)$"
        },
        "play_time_a": {
            "$id": "#/properties/play_time_a",
            "type": "string",
            "title": "Play Time A",
            "pattern": "^[0-9]*$"
        },
        "play_time_b": {
            "$id": "#/properties/play_time_b",
            "type": "string",
            "title": "Play Time B",
            "pattern": "^[0-9]*$"
        },
        "times_are_generated": {
            "$id": "#/properties/times_are_generated",
            "type": "string",
            "title": "Times Are Generated",
            "enum": ["Y", "N"]
        },
        "prod_info_a_tid": {
            "$id": "#/properties/prod_info_a_tid",
            "type": "string",
            "title": "Product Info A TID",
            "pattern": "^(.*)$"
        },
        "prod_info_b_tid": {
            "$id": "#/properties/prod_info_b_tid",
            "type": "string",
            "title": "Product Info B TID",
            "pattern": "^(.*)$"
        },
        "scribe_no_a": {
            "$id": "#/properties/scribe_no_a",
            "type": "string",
            "title": "Scribe Number A",
            "pattern": "^(.*)$"
        },
        "scribe_no_b": {
            "$id": "#/properties/scribe_no_b",
            "type": "string",
            "title": "Scribe Number B",
            "pattern": "^(.*)$"
        },
        "component_id": {
            "$id": "#/properties/component_id",
            "type": "string",
            "title": "Component ID",
            "pattern": "^(.*)$"
        },
        "excl_comp_from_complete": {
            "$id": "#/properties/excl_comp_from_complete",
            "type": "string",
            "title": "Exclude Component From Complete",
            "enum": ["Y", "N"]
        },
        "rev_alloc_percent": {
            "$id": "#/properties/rev_alloc_percent",
            "type": "number",
            "title": "Revenue Allocation Percent",
            "description": "The percentage of revenue allocated to this component. Value between 0 and 100.",
            "minimum": 0,
            "maximum": 100
        },
        "mod_stamp": {
            "$id": "#/properties/mod_stamp",
            "type": "string",
            "title": "Modification Timestamp",
            "description": "The timestamp when the record was last modified, in UTC.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"
        },
        "mod_flag": {
            "$id": "#/properties/mod_flag",
            "type": "string",
            "title": "Modification Flag",
            "description": "A flag indicating the type of modification. 'I' for Insert, 'U' for Update, and 'D' for Delete.",
            "enum": ["I", "U", "D"],
            "default": "I"
        }
    }
}
