Feature request: create a constraint for a relationship between labels

I'd like to be able to create a constraint in the database that ensures a relationship is only used between two specific labels. It seems that there is no such support in Cypher (or I just haven't found a way to do it). Given the lack of support for such constraints, I can write the following:

CREATE (:Person {name: "savas"})-[:rated {stars: 5}]->(:Movie {title: "StarWars"})
 
MATCH (p:Person {name: "savas"})
CREATE (p)-[:rated {stars: 1}]->(:Database { name: "neo4j"})

I wouldn't be able to do the above if I had a constraint that looked something like this:

CREATE CONSTRAINT IF NOT EXISTS FOR (:Person)-[:rated]->(:Movie)

Update: It seems there was a similar request from 5y ago: Can I have a Constraint that a specific Relationship exists between two nodes/labels?

Hi Savas

The feature you are asking for will actually come later this year (unless priorities change). There is a whole new feature called Schema (or "Graph Type") being developed, which will be sort of an umbrella for different constraints (both existing and new), and this will be one of the new constraints that can be achieved with a graph type.

Once this is released you will be able to do it like this:

ALTER CURRENT GRAPH TYPE ADD {
  (:Person)-[:rated =>]->(:Moive)
}

or even:

ALTER CURRENT GRAPH TYPE ADD {
  (:Person)-[:rated => {stars :: INTEGER NOT NULL}]->(:Movie)
}

@christoffer.bergman is there a link to these future features?