(([{ id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Album", path := [] }, eid := "y" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Action", path := [] }
                          { ty := { id := "User", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Action", path := [] }, eid := "p1" },
                      { ty := { id := "Album", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "p1" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "bob" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Action", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "p1" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when, body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "User", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "alice" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Action", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.resource) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false)))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID
                                    { ty := { id := "Foo", path := [] }, eid := "alice" }))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Action", path := [] }, eid := "a" },
                      { ty := { id := "Photo", path := [] }, eid := "x" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "x" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 62 }))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "p1" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag"))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "x" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "User", path := [] }, eid := "ghost" }) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "y" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "Action", path := [] }, eid := "x" }) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.mem)
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name"))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag"))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Foo", path := [] }
                       { ty := { id := "Album", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 4 }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 48 }))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Foo", path := [] }, eid := "b" }))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "edit" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Album", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.context) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Foo", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "bob" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "alice" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Action", path := [] }, eid := "bob" }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 35 }) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "Album", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "Foo", path := [] }, eid := "view" }) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "y" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "alice" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "y" },
                      { ty := { id := "Photo", path := [] }, eid := "bob" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "ghost" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "z" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name"))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "User", path := [] }, eid := "alice" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "User", path := [] }, eid := "ghost" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "User", path := [] }, eid := "z" }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "b" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Album", path := [] }, eid := "b" },
                      { ty := { id := "Action", path := [] }, eid := "ghost" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "User", path := [] }, eid := "y" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 48 }) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Action", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "edit" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag") }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Album", path := [] }, eid := "edit" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "edit" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false)))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID
                                    { ty := { id := "Foo", path := [] }, eid := "bob" }))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Album", path := [] }, eid := "bob" },
                      { ty := { id := "Action", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "Photo", path := [] }, eid := "alice" }) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Action", path := [] }
                       { ty := { id := "Album", path := [] }, eid := "z" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "x" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 98 }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "owner"))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Action", path := [] }, eid := "a" },
                      { ty := { id := "Foo", path := [] }, eid := "y" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Photo", path := [] }
                       { ty := { id := "User", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.eq)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "x" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "b" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Foo", path := [] }
                       { ty := { id := "Foo", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource)))
                              (Cedar.Spec.Expr.lit
                                (Cedar.Spec.Prim.entityUID { ty := { id := "Album", path := [] }, eid := "bob" })) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Album", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.eq)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag")))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.action) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Action", path := [] }
                       { ty := { id := "Foo", path := [] }, eid := "y" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "Album", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag")))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "b" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Foo", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "b" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Photo", path := [] }
                          { ty := { id := "Photo", path := [] }, eid := "b" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Photo", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "edit" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "owner"))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Album", path := [] }
                       { ty := { id := "Photo", path := [] }, eid := "alice" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "view" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.context) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "User", path := [] }, eid := "p1" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Action", path := [] }
                         { ty := { id := "Foo", path := [] }, eid := "x" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Action", path := [] }, eid := "x" },
                      { ty := { id := "Photo", path := [] }, eid := "p1" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age"))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Action", path := [] }, eid := "edit" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Action", path := [] }
                       { ty := { id := "Action", path := [] }, eid := "p1" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "alice" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "alice" },
                      { ty := { id := "Album", path := [] }, eid := "ghost" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Action", path := [] }, eid := "edit" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.mem)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Album", path := [] }, eid := "alice" }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "edit" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "x" },
                      { ty := { id := "Action", path := [] }, eid := "view" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "y" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "Album", path := [] }, eid := "alice" }) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Album", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag") }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.context) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)))
                              (Cedar.Spec.Expr.lit
                                (Cedar.Spec.Prim.entityUID
                                  { ty := { id := "Photo", path := [] }, eid := "edit" })) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Album", path := [] }
                          { ty := { id := "User", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Action", path := [] }, eid := "edit" },
                      { ty := { id := "User", path := [] }, eid := "z" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Album", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "User", path := [] }],
                  attrs := Cedar.Data.Map.mk [],
                  tags := none }),
             ({ id := "Photo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Foo", path := [] }, { id := "Photo", path := [] }],
                  attrs := Cedar.Data.Map.mk [],
                  tags := some (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.duration)) }),
             ({ id := "User", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Foo", path := [] }],
                  attrs := Cedar.Data.Map.mk [],
                  tags := some (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.datetime)) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Foo", path := [] }, eid := "view" },
               { appliesToPrincipal := Cedar.Data.Set.mk
                                         [{ id := "Foo", path := [] },
                                          { id := "Photo", path := [] },
                                          { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Foo", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Album", path := [] }, eid := "p1" },
                                 { ty := { id := "Foo", path := [] }, eid := "a" }],
                 context := Cedar.Data.Map.mk
                              [("flag",
                                Cedar.Validation.Qualified.optional
                                  (Cedar.Validation.CedarType.entity { id := "Album", path := [] })),
                               ("name",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.decimal)))] }),
              ({ ty := { id := "Foo", path := [] }, eid := "x" },
               { appliesToPrincipal := Cedar.Data.Set.mk [],
                 appliesToResource := Cedar.Data.Set.mk
                                        [{ id := "Action", path := [] },
                                         { id := "Album", path := [] },
                                         { id := "Photo", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Action", path := [] }, eid := "y" },
                                 { ty := { id := "Foo", path := [] }, eid := "ghost" }],
                 context := Cedar.Data.Map.mk [] })] },
 48)) — validateWithLevel rejected policy p0 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "User", path := [] }, eid := "b" },
                      { ty := { id := "User", path := [] }, eid := "edit" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Action", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "z" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 26 })))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Photo", path := [] }, eid := "edit" }))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "User", path := [] }, eid := "y" }))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "edit" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 19 })))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 54 }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 12 }))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Action", path := [] }
                          { ty := { id := "Album", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Action", path := [] }, eid := "x" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "view" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age")))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Photo", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "view" },
                      { ty := { id := "Album", path := [] }, eid := "x" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Foo", path := [] }
                          { ty := { id := "Album", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "z" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "b" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Foo", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.eq)
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "Foo", path := [] }, eid := "view" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 56 }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Photo", path := [] }, eid := "alice" },
                      { ty := { id := "Foo", path := [] }, eid := "x" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age")))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Album", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Album", path := [] }, eid := "bob" },
                      { ty := { id := "Action", path := [] }, eid := "alice" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name")))
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 24 })) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "b" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "p1" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.mem)
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource)))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "bob" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "a" },
                      { ty := { id := "Album", path := [] }, eid := "y" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Foo", path := [] }
                          { ty := { id := "User", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "bob" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "Foo", path := [] }, eid := "view" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "Album", path := [] }, eid := "b" }) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Photo", path := [] }, eid := "a" },
                      { ty := { id := "User", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "x" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "User", path := [] }, eid := "x" },
                      { ty := { id := "Foo", path := [] }, eid := "ghost" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "z" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Action", path := [] }
                          { ty := { id := "Action", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "bob" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 29 })))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "User", path := [] }, eid := "edit" }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))) }] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Foo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [],
                  attrs := Cedar.Data.Map.mk
                             [("age",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.ff)))],
                  tags := none }),
             ({ id := "User", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "User", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.entity { id := "Album", path := [] })),
                              ("owner",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt)))],
                  tags := some (Cedar.Validation.CedarType.entity { id := "User", path := [] }) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Action", path := [] }, eid := "edit" },
               { appliesToPrincipal := Cedar.Data.Set.mk
                                         [{ id := "Action", path := [] },
                                          { id := "Album", path := [] },
                                          { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "User", path := [] }],
                 ancestors := Cedar.Data.Set.mk [{ ty := { id := "Action", path := [] }, eid := "y" }],
                 context := Cedar.Data.Map.mk [] }),
              ({ ty := { id := "Foo", path := [] }, eid := "edit" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [],
                 ancestors := Cedar.Data.Set.mk [{ ty := { id := "Action", path := [] }, eid := "p1" }],
                 context := Cedar.Data.Map.mk
                              [("flag",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt)))] }),
              ({ ty := { id := "Foo", path := [] }, eid := "ghost" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Action", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [],
                 ancestors := Cedar.Data.Set.mk [],
                 context := Cedar.Data.Map.mk
                              [("flag",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.decimal)))] })] },
 48)) — validateWithLevel rejected policy p1 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Foo", path := [] }, eid := "alice" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "ghost" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "b" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Foo", path := [] }
                          { ty := { id := "User", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Action", path := [] }, eid := "view" },
                      { ty := { id := "Action", path := [] }, eid := "p1" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "b" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Photo", path := [] }
                       { ty := { id := "Action", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "edit" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "p1" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Album", path := [] }, eid := "edit" })))
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name")) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Album", path := [] }
                          { ty := { id := "Action", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "b" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Album", path := [] }
                       { ty := { id := "Action", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Action", path := [] }
                         { ty := { id := "User", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "User", path := [] }, eid := "alice" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "ghost" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.mem)
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag"))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))) }] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Foo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "User", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.decimal))),
                              ("flag", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.int))],
                  tags := some (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt)) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Action", path := [] }, eid := "alice" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "User", path := [] }],
                 ancestors := Cedar.Data.Set.mk [],
                 context := Cedar.Data.Map.mk
                              [("age", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.int)),
                               ("owner",
                                Cedar.Validation.Qualified.optional
                                  (Cedar.Validation.CedarType.entity { id := "Photo", path := [] }))] }),
              ({ ty := { id := "Action", path := [] }, eid := "bob" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Photo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Photo", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Album", path := [] }, eid := "ghost" },
                                 { ty := { id := "Album", path := [] }, eid := "view" },
                                 { ty := { id := "User", path := [] }, eid := "view" }],
                 context := Cedar.Data.Map.mk
                              [("flag", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.int)),
                               ("name",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.entity { id := "Album", path := [] }))] }),
              ({ ty := { id := "Album", path := [] }, eid := "b" },
               { appliesToPrincipal := Cedar.Data.Set.mk [],
                 appliesToResource := Cedar.Data.Set.mk [],
                 ancestors := Cedar.Data.Set.mk [],
                 context := Cedar.Data.Map.mk [] })] },
 69)) — validateWithLevel rejected policy p2 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "b" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "edit" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "bob" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "z" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Album", path := [] }
                         { ty := { id := "Foo", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 12 }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)))
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "owner")) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Album", path := [] }
                          { ty := { id := "User", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "x" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 69 }))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "bob" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Album", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Action", path := [] }, eid := "y" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "z" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 62 }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID
                                    { ty := { id := "Action", path := [] }, eid := "view" }))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "x" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 54 }))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))) }] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Foo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Album", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("name",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.anyBool)))],
                  tags := some (Cedar.Validation.CedarType.int) }),
             ({ id := "Photo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Photo", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.int)),
                              ("owner",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt)))],
                  tags := some (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.duration)) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Album", path := [] }, eid := "y" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Foo", path := [] }, { id := "Photo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "User", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Album", path := [] }, eid := "x" },
                                 { ty := { id := "Foo", path := [] }, eid := "ghost" }],
                 context := Cedar.Data.Map.mk
                              [("owner", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.int))] }),
              ({ ty := { id := "Photo", path := [] }, eid := "alice" },
               { appliesToPrincipal := Cedar.Data.Set.mk [],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "Foo", path := [] }],
                 ancestors := Cedar.Data.Set.mk [],
                 context := Cedar.Data.Map.mk [] })] },
 6)) — validateWithLevel rejected policy p0 with .levelError — the level checker rejected an entity-access expression it should have allowed