마켓플레이스 게임 개발
공개 오류 레퍼런스
마켓플레이스 공개 경로가 반환할 수 있는 모든 오류 코드, 그 트리거와 고침으로의 링크와 함께. 단계별 고침은 공개 실패 고치기를 보세요.
| 코드 | 트리거 | 고침 |
|---|
invalid-repo | 공개 모달에 입력한 저장소 필드가 owner/name으로 파싱되지 않음. 수동 공개만 | owner/name이나 전체 https://github.com/owner/name URL을 쓰세요 |
repo-not-found | 우리 매니페스트 가져오기가 404를 반환함. 당신의 저장소가 비공개거나, 없거나, caputchin-game 토픽이 없거나, 기대된 경로에 caputchin.json이 없음 | 저장소를 공개로 만들기 + 토픽 더하기 + 매니페스트 푸시하기 |
manifest-error | 당신의 caputchin.json이 검증에 실패함. detail 문자열이 특정 필드를 댐. manifest-error 하위 코드를 보세요 | detail이 대는 필드를 고치세요 |
bundle-fetch-failed | entry 및/또는 npm이 고정한 번들 URL을 가져올 수 없거나, 비2xx를 반환하거나, 12MB를 넘음 | 번들 URL과 크기 확인하기 |
run-not-conforming | 선택적 run 산출물의 스모크 확인(결정론적 시드로 한 번 돌림)이 적합한 판정을 반환하지 않음. 당신의 게임은 여전히 나열되며, 그저 재생 불가로 보이고 게이트할 수 없음 | 당신의 시뮬레이션을 결정론적으로 만들기 |
rate-limited | 지난 60초 안에 당신의 IP에서 공개 요청이 너무 많음 | 60초 기다리고 재시도하세요 |
manifest-error를 받으면, detail 문자열이 실패한 필드로 시작합니다. 맞는 고침을 찾으려면 이 표를 쓰세요.
| detail의 필드 | 의미 | 고침 |
|---|
terms_accepted | 필드가 없거나 리터럴 JSON 불리언 true가 아님 | 제출 약관을 읽은 뒤 true로 설정하기 |
license | 없거나, 잘못됐거나, 승인된 목록 밖의 SPDX 식별자를 댐 | 승인된 목록에서 식별자 고르기 |
(root) | JSON 파일이 객체로 파싱되지 않음(최상위 배열, 문자열, 또는 null을 가짐) | { ... }로 감싸세요 |
marketplace | marketplace 블록이 있지만 객체가 아님 | 객체로 만들거나 제거하세요(자체 호스팅 전용 게임은 블록을 생략함) |
marketplace.name / description / preview | 필드가 문자열이 아님 | 문자열화하거나 제거하세요 |
marketplace.author | 블록이 있지만 객체가 아님 | { name?, url?, email? } 모양을 쓰세요 |
marketplace.author.name / url | 하위 필드가 문자열이 아님 | 문자열화하거나 제거하세요 |
marketplace.author.email | 문자열이 아니거나 이메일 모양 확인에 실패 | 주소를 고치거나 필드를 제거하기 |
entry | 단일 게임에 entry도 npm도 없거나, 값이 순회(../), 절대 슬래시, Windows 구분자, 쿼리 문자열, 또는 공백을 담음 | 깨끗한 상대 경로를 제공하세요 |
npm | 문자열이 아니거나, npm 이름 정규식에 실패 | 유효한 npm 패키지 이름을 쓰세요 |
entry/npm+games | entry/npm과 games가 같은 수준에 둘 다 선언됨 | 하나를 고르세요: 단일 게임은 entry/npm을 쓰고; 컬렉션 래퍼는 games를 씁니다 |
entry/npm | 단일 게임에 둘 다 없음 | 하나를 더하세요 |
games | 배열이 아니거나, 비문자열 엔트리를 담거나, 순회/절대 경로를 담거나, . / ./(저장소 루트를 자기 참조할)을 담음 | 배열을 고치세요 |
games[i] | 특정 자식 경로가 유효하지 않음 | 그 엔트리를 고치세요 |
run / run.entry / run.modules[i].* | 선택적 분할 run 선언이 잘못됨 | 스키마대로 고치기 |
license 필드가 이 목록의 SPDX 식별자로 평가되는 caputchin.json 매니페스트만 라이선스 게이트를 통과합니다. 구속력 있는 버전은 마켓플레이스 제출 약관 4절을 보세요.
| SPDX ID | 이름 |
|---|
MIT | MIT License |
MIT-0 | MIT No Attribution |
Apache-2.0 | Apache License 2.0 |
BSD-2-Clause | BSD 2-Clause "Simplified" |
BSD-3-Clause | BSD 3-Clause "New" / "Revised" |
0BSD | BSD Zero Clause |
ISC | ISC License |
Zlib | zlib License |
Unlicense | The Unlicense (public-domain dedication) |
BSL-1.0 | Boost Software License 1.0 |
NCSA | University of Illinois / NCSA Open Source License |
PostgreSQL | PostgreSQL License |
Python-2.0 | Python License 2.0 |
PHP-3.01 | PHP License 3.01 |
Ruby | Ruby License |
TCL | Tcl/Tk License |
MS-PL | Microsoft Public License |
AFL-3.0 | Academic Free License 3.0 |
MulanPSL-2.0 | Mulan Permissive Software License v2 |
WTFPL | Do What The Fuck You Want To Public License |
| SPDX ID | 이름 |
|---|
MPL-2.0 | Mozilla Public License 2.0 |
MS-RL | Microsoft Reciprocal License |
| SPDX ID | 이름 |
|---|
CC0-1.0 | Creative Commons Zero v1.0 |
CC-BY-3.0 | Creative Commons Attribution 3.0 |
CC-BY-4.0 | Creative Commons Attribution 4.0 |
OFL-1.1 | SIL Open Font License 1.1 |
MIT: 맨 식별자; 위에 나타나야 함.
MIT OR Apache-2.0: OR의 어느 분기든 위에 나타나야 함.
MIT AND CC-BY-4.0: AND의 모든 분기가 위에 나타나야 함.
Apache-2.0 WITH LLVM-exception: WITH 절은 받아들여지지 않음.
LGPL-2.1+: +(또는 이후) 접미사는 받아들여지지 않음.
| 분류 | 예시 | 왜 |
|---|
| 강한 카피레프트 | GPL-*, AGPL-* | 전염성; AGPL §13 네트워크 트리거는 우리가 네트워크 호스트라 첨예함. (GPL-2.0-only는 Caputchin이 공개하는 자사 게임에만 받아들여지지, 제3자 제출에는 아님.) |
| 번들 모호성을 둔 라이브러리 카피레프트 | LGPL-* | "라이브러리를 전달하라"가 JavaScript와 WebAssembly 번들에 모호하게 읽힘 |
| 자산의 동일 조건 공유 | CC-BY-SA-*, CC-BY-NC-*, CC-BY-ND-* | 동일 조건 공유가 임베드하는 사이트의 연동을 오염시킴; NC는 상업적 배포를 배제함 |
| 소스 이용 가능(OSI 아님) | BUSL-1.1, SSPL-1.0, Elastic-2.0 | 이용 분야 제한, 재배포 제한, 또는 둘 다 |
BSL-1.0(Boost Software License)은 관대하고 받아들여짐에 유의하세요; BUSL-1.1(Business Source License)은 아닙니다. 파서는 SPDX 정규 문자열을 상대로 그대로 비교하니, 둘은 결코 충돌하지 않습니다.