본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
게임 목록
임의의 게임으로
커뮤니티
리버티게임 본진
리버티게임(개발)
검색
검색
보이기
계정 만들기
로그인
개인 도구
계정 만들기
로그인
리버티게임:게임 메타데이터/스키마.json 문서 원본 보기
프로젝트 문서
토론
English
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
새로 고침
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
축약된 URL 얻기
보이기
사이드바로 이동
숨기기
←
리버티게임:게임 메타데이터/스키마.json
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://libertyga.me/wiki/Special:UrlRedirector/H#", "title": "리버티게임 게임 메타데이터", "description": "게임 메타데이터는 게임에 대한 정보를 리버티게임의 다양한 시스템이 읽을 수 있도록 모아놓은 JSON 문서입니다.\n게임 메타데이터는 기본적으로 최상위 게임 문서의 하위 문서인 `/game.json`에 작성됩니다.\n게임 메타데이터 규격은 아직 확정되지 않았습니다. 계속 논의 중이며, 언제든지 변경될 수 있습니다.", "$defs": { "genre": { "title": "장르", "type": "string", "description": "게임의 장르입니다.", "oneOf": [ { "const": "어드벤처", "title": "어드벤처 게임" }, { "const": "오픈 월드", "title": "오픈 월드 게임" }, { "const": "철도 교통", "title": "철도 교통 게임" }, { "const": "도로 기행", "title": "도로 기행 게임" }, { "const": "탈출", "title": "탈출 게임" }, { "const": "함정 피하기", "title": "함정 피하기 게임" }, { "const": "액션", "title": "액션 게임" }, { "const": "퍼즐", "title": "퍼즐 게임" }, { "const": "퀴즈", "title": "퀴즈 게임" }, { "const": "보드", "title": "보드 게임" }, { "const": "음악", "title": "음악 게임" }, { "const": "롤플레잉", "title": "롤플레잉 게임" }, { "const": "시뮬레이션", "title": "시뮬레이션 게임" }, { "const": "전략", "title": "전략 게임" }, { "const": "캐주얼", "title": "캐주얼 게임" }, { "const": "예언", "title": "예언 게임" }, { "const": "스포츠", "title": "스포츠 게임" }, { "const": "시간 낭비하기", "title": "시간 낭비하기 게임" }, { "const": "멀티플레이", "title": "멀티플레이 게임" } ] }, "platform": { "title": "플랫폼", "type": "string", "description": "게임이 지원하는 플랫폼입니다.", "oneOf": [ { "const": "web", "title": "웹", "description": "웹 (무설치)", "icon": "language" }, { "const": "windows", "title": "윈도우", "description": "윈도우 (설치)", "icon": "desktop_windows" }, { "const": "linux", "title": "리눅스", "description": "리눅스 (설치)", "icon": "terminal" }, { "const": "macos", "title": "맥 OS", "description": "맥 OS (설치)", "icon": "laptop_mac" }, { "const": "android", "title": "안드로이드", "description": "안드로이드 (설치)", "icon": "android" }, { "const": "other", "title": "기타", "description": "기타", "icon": "dynamic_feed" } ], "pattern": "[a-z]" }, "DB2KeyInfo": { "title": "DB2 키 정보 객체", "type": "object", "properties": { "description": { "title": "키 설명", "type": "string", "description": "키에 대한 설명을 입력합니다." } }, "required": [ "description" ], "additionalProperties": false } }, "type": "object", "properties": { "genre": { "title": "장르", "description": "게임의 장르입니다. 배열을 사용해 여러 장르를 지정할 수 있습니다. [[분류:리버티게임 장르별 분류]]의 하위 분류에서 '게임'만 뗀 값입니다.", "anyOf": [ { "$ref": "#/$defs/genre" }, { "type": "array", "items": { "$ref": "#/$defs/genre" } } ] }, "author": { "title": "저자 이름", "description": "게임의 소유자, 또는 주 기여자의 사용자 이름을 입력합니다. 다시 말해, 여러분의 사용자 이름을 입력하면 되겠습니다. 여러명이 제작한 합작 게임의 경우 배열을 사용할 수 있습니다. 유효한 사용자 문서 이름이어야 하고, 사용자: 이름공간은 생략합니다. 만약 사용자 문서가 아닌 다른 문서를 가리키는 제작 팀의 경우 이름공간까지 포함해서 해당 문서 제목을 입력해 주세요. 기본 이름공간의 경우 그냥 :(콜론)으로 시작하면 됩니다. 틀 이름공간이 아닌 문서를 틀처럼 끼워넣을 때와 비슷합니다.", "anyOf": [ { "type": "string", "format": "uri-reference" }, { "type": "array", "items": { "type": "string", "format": "uri-reference" } } ] }, "name": { "title": "게임 이름", "type": "string", "description": "게임의 이름입니다. 상위 문서명과 다르게 입력할 수 있으며, 여기에 입력한 대로 게임아이콘에 보여집니다.", "maxLength": 50 }, "vairant": { "title": "대체 제목", "type": "string", "description": "이 필드는 게임의 대체 제목 또는 별칭을 나타냅니다. 'name' 필드만으로 게임의 설계대로 구현할 수 없을때 사용하는 필드입니다.", "maxLength": 50, "default": null }, "issuetracker": { "title": "이슈 트래커", "type": "string", "format": "iri", "description": "게임의 이슈를 보고할 수 있는 트래커에 대한 링크입니다. 리버티게임 내부 게임은 해당게임 토론 이름공간으로 통일되기에 기입할 필요가 없습니다. 소스코드가 외부 저장소에 위치한 경우 해당 사이트의 이슈 게시란으로 명시하기 위한 필드입니다." }, "changelog": { "title": "변경이력", "type": "string", "description": "게임의 변경이력에 대한 링크입니다." }, "summary": { "title": "짧은 설명", "type": "string", "description": "게임에 대한 한 줄짜리 짧은 설명입니다. 80자 이내로 작성해 주세요.", "maxLength": 80 }, "description": { "title": "설명", "type": "string", "description": "게임에 대한 간단한 설명입니다. 한 문단 정도의 분량으로 최대한 간단히 작성해 주세요.", "maxLength": 4000 }, "version": { "title": "현재 버전", "type": "string", "description": "현재 버전을 나타냅니다." }, "contributor": { "title": "기여자", "description": "게임을 만드는데 크거나 작게 도움을 준 기여자(조력자)의 사용자 이름을 입력합니다. 주 기여자(author)는 입력하지 않습니다. 여러명을 입력하려는 경우 배열을 사용할 수 있습니다. 유효한 사용자 문서 이름이어야 하고, 사용자: 이름공간은 생략합니다. 만약 사용자 문서가 아닌 다른 문서를 가리키는 제작 팀의 경우 이름공간까지 포함해서 해당 문서 제목을 입력해 주세요. 기본 이름공간의 경우 그냥 :(콜론)으로 시작하면 됩니다. 틀 이름공간이 아닌 문서를 틀처럼 끼워넣을 때와 비슷합니다.", "anyOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ] }, "progress": { "title": "완성도", "type": "integer", "description": "게임의 완성도를 입력합니다.", "oneOf": [ { "const": 0, "title": "변경하지 말아야 하는 공사중인 게임", "description": "변경하지 말아야 하는 공사중인 게임입니다.", "icon": "signal_cellular_0_bar" }, { "const": 1, "title": "조금 완성된 게임", "description": "조금 완성된 게임입니다.", "icon": "signal_cellular_1_bar" }, { "const": 2, "title": "중간 정도 완성된 게임", "description": "중간 정도 완성된 게임입니다.", "icon": "signal_cellular_2_bar" }, { "const": 3, "title": "거의 완성된 게임", "description": "거의 완성된 게임입니다.", "icon": "signal_cellular_3_bar" }, { "const": 4, "title": "완성되었지만 추가할 수 있는 게임", "description": "완성되었지만 추가할 수 있는 게임입니다.", "icon": "signal_cellular_4_bar" }, { "const": 5, "title": "완성되어 변경하지 말아야 하는 게임", "description": "완성되어 변경하지 말아야 하는 게임입니다.", "icon": "signal_cellular_connected_no_internet_4_bar" } ], "minimum": 0, "maximum": 5 }, "editpolicy": { "title": "게임 편집 정책", "type": "string", "description": "게임 편집의 개방성을 결정하는 게임 편집 정책입니다.", "oneOf": [ { "const": "open", "title": "편집 가능", "description": "모두에게 편집이 개방되었습니다.", "icon": "lock_open_right" }, { "const": "limited", "title": "규칙에 따라 편집 가능", "description": "규칙에 따라 일부만 편집할 수 있습니다.", "icon": "lock_open" }, { "const": "closed", "title": "편집 금지", "description": "제작자 이외의 편집이 제한됩니다.", "icon": "lock" } ], "pattern": "[a-z]" }, "editpolicypage": { "title": "게임 편집 지침 문서", "type": "string", "description": "게임 편집 지침이나 규칙을 안내하는 문서의 제목을 작성합니다. 게임 대문(game.json의 상위 문서)을 기준으로 한 상대 경로를 사용할 수 있습니다.", "format": "uri-reference" }, "platform": { "title": "플랫폼", "description": "게임이 지원하는 플랫폼 목록입니다. 생략하면 web만 지원하는 것으로 간주됩니다.", "default": "web", "anyOf": [ { "$ref": "#/$defs/platform" }, { "type": "array", "items": { "$ref": "#/$defs/platform" } } ] }, "rating": { "title": "등급 분류", "description": "각 등급 분류 기관별 등급 분류 정보를 입력합니다.", "default": null, "oneOf": [ { "const": "null", "type": "null", "title": "등급 판정 필요", "description": "등급 판정이 필요한 게임입니다.", "icon": "hourglass_empty" }, { "type": "object", "properties": { "libertygame": { "type": "object", "title": "리버티게임 등급 분류 정보", "description": "리버티게임 자체 등급 심의의 등급 분류 정보입니다. 등급면제를 제외한 grac 등급 분류 정보가 있다면 생략해도 됩니다.", "properties": { "age": { "type": [ "integer", "string" ], "title": "이용 등급", "description": "게임 이용 등급 연령을 입력합니다.", "oneOf": [ { "const": "test", "title": "평가용", "description": "등급 판정중인 게임입니다.", "icon": "hourglass_top" }, { "const": "all", "title": "전체 이용가", "description": "모든 연령이 즐길 수 있습니다.", "icon": "cruelty_free" }, { "const": 12, "title": "12세 이용가", "description": "12세 미만이 이용시 부모의 지도가 필요합니다.", "icon": "12mp" }, { "const": 15, "title": "15세 이용가", "description": "15세 미만이 이용시 부모의 지도가 필요합니다.", "icon": "15mp" }, { "const": 18, "title": "18세 이용가", "description": "청소년은 이용이 불가하며 리버티게임에서 서비스 될 수 없는 등급의 게임입니다.", "icon": "18_up_rating" } ] }, "date": { "type": "string", "title": "등급 분류 일자", "description": "게임 이용 등급을 분류한 일자를 입력합니다.", "format": "date" } }, "required": [ "age", "date" ] }, "grac": { "type": "object", "title": "게임물관리위원회 등급 분류 정보", "description": "게임물관리위원회(게임콘텐츠등급분류위원회 포함)의 등급 분류 정보입니다. 정식으로 등급분류나 등급면제/시험용 게임 확인을 받은 경우에만 작성하세요.", "properties": { "age": { "type": "object", "title": "이용 등급", "description": "게임 이용 등급 연령을 입력합니다.", "oneOf": [ { "const": "re", "title": "등급면제" }, { "const": "test", "title": "평가용" }, { "const": "all", "title": "전체이용가" }, { "const": 12, "title": "12세이용가" }, { "const": 15, "title": "15세이용가" }, { "const": 18, "title": "18세 이용가" } ] }, "contentdescriptor": { "type": "array", "title": "내용정보", "description": "게임 내용정보를 입력합니다.", "items": { "type": "string", "oneOf": [ { "const": "sexuality", "title": "선정성" }, { "const": "violence", "title": "폭력성" }, { "const": "horror", "title": "공포" }, { "const": "language", "title": "언어의 부적절성" }, { "const": "drug", "title": "약물" }, { "const": "crime", "title": "범죄" }, { "const": "gambling", "title": "사행성" } ] } }, "id": { "type": "string", "title": "등급분류번호/확인증번호", "description": "age가 \"test\"면 평가확인증번호를, \"re\"면 등급면제 확인증번호를, 그 외이면 등급분류번호를 입력합니다.", "oneOf": [ { "title": "등급분류번호", "pattern": "^(GC-)?CC-([A-Z]{2})-\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])-\\d{3}$" }, { "title": "평가확인증번호", "pattern": "^\\d{4}-\\d{4}$" }, { "title": "등급면제 확인증번호", "pattern": "^\\d{4}-RE\\d{4}$" } ] }, "title": { "type": "string", "title": "제명", "description": "등급분류/시험용게임확인/등급면제확인 상 게임의 제명을 입력합니다. name과 같은 경우 입력하지 않으며, 다른 경우에만 입력합니다." }, "author": { "type": "string", "title": "제작자/상호", "description": "등급분류/시험용게임확인/등급면제확인 상 신청자를 입력합니다." }, "authorid": { "type": "string", "title": "게임물 제작업자 및 배급업자의 신고번호 및 등록번호", "description": "게임물 제작업자 및 배급업자의 신고번호 및 등록번호를 입력합니다. 개인이 비영리로 게임을 만드는 리버티게임의 특성 상 거의 사용되지 않습니다." }, "date": { "type": "string", "title": "게임 제작 일자", "description": "등급분류/시험용게임확인/등급면제확인 상 게임의 제작일자를 입력합니다.", "format": "date" } }, "required": [ "age", "id", "author", "date" ], "additionalProperties": false } }, "minProperties": 1, "additionalProperties": false } ] }, "construction": { "title": "공사중", "oneOf": [ { "type": "string", "format": "date", "description": "해당 날짜까지 공사중인 게임입니다." }, { "type": "boolean", "oneOf": [ { "const": true, "title": "공사중", "description": "공사중인 게임입니다. 공사 기간은 마지막 편집으로부터 15일 뒤까지입니다." }, { "const": false, "description": "공사중인 게임이 아닙니다." } ] } ], "description": "게임 공사 여부 및 기간을 입력합니다. true를 입력하거나 공사를 마치는 날짜를 년-월-일로 입력해 주세요." }, "repair": { "title": "수리중", "anyOf": [ { "type": "string", "format": "date", "description": "해당 날짜까지 수리중인 게임입니다." }, { "type": "boolean", "oneOf": [ { "const": true, "title": "수리중", "description": "수리중인 게임입니다. 수리 기간은 마지막 편집으로부터 15일 뒤까지입니다." }, { "const": false, "description": "수리중인 게임이 아닙니다." } ] } ], "default": false, "description": "게임 수리 여부 및 기간을 입력합니다. true를 입력하거나 수리를 마치는 날짜를 년-월-일로 입력해 주세요." }, "abandon": { "title": "버려진 게임", "type": "boolean", "description": "버려진 게임 여부입니다. 버려진 게임이 아닐 경우 입력할 필요가 없습니다.", "default": false }, "login": { "title": "로그인 필요 여부", "type": "string", "description": "로그인 필요 여부를 선택합니다.", "default": "unnecessary", "oneOf": [ { "const": "required", "title": "로그인 필수", "description": "로그인한 사용자만 이용할 수 있는 게임입니다. 로그인하지 않으면 모든 기능이 사용 불가능할 때 선택하세요." }, { "const": "recommended", "title": "로그인 권장", "description": "로그인하여 플레이할 것을 권장하는 게임입니다. 로그인하지 않으면 일부 기능이 제한될 때 선택하세요." }, { "const": "unnecessary", "title": "로그인 불필요", "description": "IP 사용자도 이용할 수 있는 게임입니다. 로그인하지 않아도 모든 기능을 제한없이 사용할 수 있을 때 선택하세요." } ], "pattern": "[a-z]" }, "privacypolicy": { "title": "개인정보 취급 방침", "type": "string", "description": "개인 정보를 수집하는 게임의 개인 정보 취급 방침 문서를 지정합니다. 게임 대문(game.json의 상위 문서)을 기준으로 한 상대 경로를 사용할 수 있습니다.", "format": "uri-reference" }, "gameDB": { "title": "DB2 키 정보", "type": "object", "properties": { "default": { "title": "기본키", "$ref": "#/$defs/DB2KeyInfo", "description": "기본키에 대한 정보를 입력합니다." }, "keys": { "title": "사용자 지정 키", "type": "object", "description": "사용자 지정 키에 대한 정보를 입력합니다. 키에 키 이름을, 값에 키 정보 객체를 작성합니다.", "additionalProperties": { "$ref": "#/$defs/DB2KeyInfo" } } }, "additionalProperties": false }, "created": { "title": "작성일", "type": "string", "description": "게임이 생성된 일자를 기입합니다.", "format": "date" }, "image": { "title": "대표 이미지", "type": "image", "description": "게임에서 사용되는 대표 이미지를 지정합니다. 리버티 게임 내부의 파일만 허용되며, 파일 네임스페이스는 제외하여 기재합니다." } }, "featured": { "title": "특집 게임 정보", "type": "object", "properties": { "date": { "title": "특집 게임 날짜", "type": "string", "description": "특집 게임이 선정된 날짜를 지정합니다.", "format": "date" }, "description": { "title": "특집 게임 추천평", "type": "string", "description": "특집 게임의 추천평을 기입합니다." }, "author": { "title": "추천평 작성자", "type": "string", "description": "추천평을 작성한 사용자명을 기입합니다." } }, "required": [ "date" ], "description": "특집게임에 대한 추가 정보를 기입하는 섹션입니다." }, "required": [ "genre", "AuthorName", "Name", "Summary", "progress", "editpolicy" ], "additionalProperties": false }
리버티게임:게임 메타데이터/스키마.json
문서로 돌아갑니다.