amuse.proto 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Go = import "/go.capnp";
  2. @0xcd7129bab3129d29;
  3. $Go.package("protocol");
  4. $Go.import("protocol");
  5. struct Film {
  6. id @0 :UInt64;
  7. title @1 :Text;
  8. genres @2 :List(Text);
  9. releaseDate @3 :Date;
  10. struct Date {
  11. year @0 :Int16;
  12. month @1 :UInt8;
  13. day @2 :UInt8;
  14. }
  15. originalTitle @4 :Text;
  16. overview @5 :Text;
  17. tagline @6 :Text;
  18. runtime @7 :UInt16;
  19. isAdult @8 :Bool;
  20. mark @9 :Float32;
  21. voteCount @10 :UInt64;
  22. status @11 :Status;
  23. enum Status {
  24. rumored @0 $Go.tag("Rumored");
  25. planned @1 $Go.tag("Planned");
  26. inProduction @2 $Go.tag("In Production");
  27. postProduction @3 $Go.tag("Post Production");
  28. released @4 $Go.tag("Released");
  29. cancelled @5 $Go.tag("Cancelled");
  30. }
  31. posterPath @12 :Text;
  32. backdropPath @13 :Text;
  33. collection @14 :Collection;
  34. struct Collection {
  35. name @0 :Text;
  36. parts @1 :List(CollectionPart);
  37. struct CollectionPart {
  38. id @0 :UInt64;
  39. title @1 :Text;
  40. releaseDate @2 :Date;
  41. posterPath @3 :Text;
  42. }
  43. }
  44. cast @15 :List(Character);
  45. struct Character {
  46. person @0 :Person;
  47. name @1 :Text;
  48. }
  49. crew @16: List(CrewMember);
  50. struct CrewMember {
  51. person @0 :Person;
  52. job @1 :Text;
  53. }
  54. }
  55. struct Person {
  56. id @0 :UInt64;
  57. name @1 :Text;
  58. photoPath @2 :Text;
  59. }