{
  "title": "FutoIn request schema",
  "type": "object",
  "required": [
    "f",
    "p"
  ],
  "additionalProperties": false,
  "properties": {
    "f": {
      "type": "string",
      "pattern": "^([a-z][a-z0-9]*)(\\.[a-z][a-z0-9]*)*:[0-9]+\\.[0-9]+:[a-z][a-zA-Z0-9]*$",
      "description": "Unique interface identifier, version and function identifier"
    },
    "p": {
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-z][a-z0-9_]*$": {}
      },
      "description": "Parameters key-value pairs"
    },
    "rid": {
      "type": "string",
      "pattern": "^(C|S)[a-zA-Z0-9_\\-]*[0-9]+$",
      "description": "Optional request ID for multiplexing"
    },
    "forcersp": {
      "type": "boolean",
      "description": "If present and true, force response to be sent, even if no result is expected"
    },
    "sec": {
      "type": "object",
      "description": "Security-defined extension"
    },
    "obf": {
      "type": "object",
      "description": "On-Behalf-oF user info",
      "additionalProperties": false,
      "properties": {
        "lid": {
          "type": "string",
          "description": "Local User ID"
        },
        "gid": {
          "type": "string",
          "description": "Global User ID"
        },
        "slvl": {
          "type": "string",
          "description": "User authentication security level"
        }
      }
    }
  }
}