You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							147 lines
						
					
					
						
							5.8 KiB
						
					
					
				
			
		
		
	
	
							147 lines
						
					
					
						
							5.8 KiB
						
					
					
				{ | 
						|
  "$schema": "http://json-schema.org/draft-04/schema#", | 
						|
  "$id": "https://example.com/product.schema.json", | 
						|
  "title": "Form", | 
						|
  "description": "A form", | 
						|
  "type": "object", | 
						|
  "required": ["form_type", "start_year", "end_year", "sections"], | 
						|
  "properties": { | 
						|
    "form_type": { | 
						|
      "description": "", | 
						|
      "type": "string" | 
						|
    }, | 
						|
    "start_year": { | 
						|
      "description": "", | 
						|
      "type": "integer" | 
						|
    }, | 
						|
    "end_year": { | 
						|
      "description": "", | 
						|
      "type": "integer" | 
						|
    }, | 
						|
    "sections": { | 
						|
      "type": "object", | 
						|
      "patternProperties": { | 
						|
        "[a-z_]+": { | 
						|
          "description": "Section Name", | 
						|
          "type": "object", | 
						|
          "properties": { | 
						|
            "label": { | 
						|
              "description": "", | 
						|
              "type": "string" | 
						|
            }, | 
						|
            "subsections": { | 
						|
              "type": "object", | 
						|
              "patternProperties": { | 
						|
                "[a-z_]+": { | 
						|
                  "description": "SubSection Name", | 
						|
                  "type": "object", | 
						|
                  "required": ["label"], | 
						|
                  "properties": { | 
						|
                    "label": { | 
						|
                      "description": "", | 
						|
                      "type": "string" | 
						|
                    }, | 
						|
                    "pages": { | 
						|
                      "type": "object", | 
						|
                      "patternProperties": { | 
						|
                        "^(?!(depends_on))[a-z_]+$": { | 
						|
                          "description": "Page Name", | 
						|
                          "type": "object", | 
						|
                          "required": ["header", "questions"], | 
						|
                          "properties": { | 
						|
                            "header": { | 
						|
                              "description": "", | 
						|
                              "type": "string" | 
						|
                            }, | 
						|
                            "description": { | 
						|
                              "description": "", | 
						|
                              "type": "string" | 
						|
                            }, | 
						|
                            "questions": { | 
						|
                              "type": "object", | 
						|
                              "patternProperties": { | 
						|
                                "[a-z_]+": { | 
						|
                                  "description": "Question Name", | 
						|
                                  "type": "object", | 
						|
                                  "required": ["header", "type"], | 
						|
                                  "properties": { | 
						|
                                    "header": { | 
						|
                                      "description": "", | 
						|
                                      "type": "string" | 
						|
                                    }, | 
						|
                                    "type": { | 
						|
                                      "description": "", | 
						|
                                      "type": "string" | 
						|
                                    }, | 
						|
                                    "check_answer_label": { | 
						|
                                      "description": "", | 
						|
                                      "type": "string", | 
						|
                                      "optional": "true" | 
						|
                                    } | 
						|
                                  }, | 
						|
                                  "additionalProperties": { | 
						|
                                    "hint_text": { | 
						|
                                      "optional": "true", | 
						|
                                      "description": "", | 
						|
                                      "type": "string" | 
						|
                                    }, | 
						|
                                    "answer_options": { | 
						|
                                      "optional": "true", | 
						|
                                      "description": "", | 
						|
                                      "type": "object" | 
						|
                                    }, | 
						|
                                    "check_answer_label": { | 
						|
                                      "description": "", | 
						|
                                      "type": "string" | 
						|
                                    }, | 
						|
                                    "conditional_for": { | 
						|
                                      "description": "", | 
						|
                                      "type": "object" | 
						|
                                    }, | 
						|
                                    "inferred_answers": { | 
						|
                                      "description": "fields that get inferred based on the value of the current field", | 
						|
                                      "type": "object" | 
						|
                                    }, | 
						|
                                    "inferred_check_answers_value": { | 
						|
                                      "description": "value that gets displayed in the check answers for this field if the given condition is met", | 
						|
                                      "type": "object", | 
						|
                                      "properties": { | 
						|
                                        "condition": { | 
						|
                                          "description": "", | 
						|
                                          "type": "object" | 
						|
                                        }, | 
						|
                                        "value": { | 
						|
                                          "description": "", | 
						|
                                          "type": "object" | 
						|
                                        } | 
						|
                                      } | 
						|
                                    } | 
						|
                                  }, | 
						|
                                  "minProperties": 1 | 
						|
                                } | 
						|
                              } | 
						|
                            } | 
						|
                          }, | 
						|
                          "additionalProperties": { | 
						|
                            "depends_on": { | 
						|
                              "description": "", | 
						|
                              "type": "object" | 
						|
                            } | 
						|
                          }, | 
						|
                          "minProperties": 1 | 
						|
                        } | 
						|
                      } | 
						|
                    } | 
						|
                  }, | 
						|
                  "minProperties": 1 | 
						|
                } | 
						|
              } | 
						|
            } | 
						|
          }, | 
						|
          "minProperties": 2 | 
						|
        } | 
						|
      }, | 
						|
      "minProperties": 1 | 
						|
    } | 
						|
  } | 
						|
}
 | 
						|
 |