What are the property specifiers?
Property specifiers are way to add additional info into variable or function you are creating. There are lots of different specifiers are we are going through all of them here. What these property specifiers can do then? First of all, they are your way to communicate between the C++ and the Blueprints. You can for example make some specific variable or function to be visible or callable inside the Blueprint or set that some specific data is shown inside the details panel. Specifiers are also used if you want some variable to be replicated (replication is used in online gaming). Basically, Property specifiers are crucial part of the programming when using the C++.
Official documentation about Specifier can be found Here
How to use the Property specifiers?
Using the specifiers is very straight forward. When creating a function or variable, you just type UPROPERTY() or UFUNCTION() on top of the variable/function.
In this case. We have an actor. We give it one variable, type of int32 and a function that returns nothing. We set UPROPERTY to be VisibleAnywhere and BlueprintReadWrite and UFUNCTION to be Blueprincallable. If we later create a Blueprint version of this class. We can call the SomeFunction() inside Blueprint and we could see and set the value of someValue variable.